home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 22 / Amiga Format AFCD22 (Jan 1998, Issue 106).iso / -readerstuff- / d_keletsekis / tools / fastread / fread.gc < prev    next >
Text File  |  1997-10-03  |  6KB  |  283 lines

  1. G4C
  2.  
  3. WINBIG 22 11 631 221       "FastRead"
  4. wintype 11010001
  5. ; usetopaz
  6. varpath ""
  7.  
  8. xonload
  9. if $*FRGUIDE > ' '
  10.     guide = $*FRGUIDE
  11.     delvar *FRGUIDE
  12. else
  13.     guiquit fread.gc
  14.     stop
  15. endif
  16. ifexists file guis:c/writenode
  17.     run 'resident guis:c/writenode pure add'
  18. elseifexists file c:writenode
  19.     run 'resident c:writenode pure add'
  20. else
  21.     ezreq 'FastRead:\nI need the WriteNode and\nGetNodes binaries..' OK ''
  22.     guiquit fread.gc
  23. endif
  24. xline = 0
  25. gosub fread.gc loadguide
  26.  
  27. xonclose
  28. guiclose fread.gc
  29. delete ram:fr_list
  30. delete ram:guide.txt
  31. guiquit FRead.gc
  32. guiquit fread.pop
  33. guiquit fread.search
  34.  
  35. xonrmb
  36. if $mode = text
  37.    lvuse fread.gc 1
  38.    lvchange ram:fr_list
  39.    lvmove #$xline
  40.    setwintitle FRead.gc 'INDEX : $guidename                          '
  41.    mode = index
  42. else
  43.    guiopen fread.pop
  44. endif
  45.  
  46.  
  47. ; ---------------------- the listview
  48.  
  49. XLISTVIEW 0 16 629 204        '' topic '' 10 txt
  50. gadid 1
  51. gadfont topaz.font 8 000
  52. if $mode = index
  53.    xline = $$lv.line              ; current line number
  54.    cutvar topic cut word -2 offset
  55.    extract topic unquote topic
  56.    cli 'writenode $guide $offset'
  57.    lvuse fread.gc 1
  58.    lvchange ram:guide.txt
  59.    setwintitle fread.gc '$guidename : $topic                                  '
  60.    mode = text
  61. endif   
  62.  
  63.  
  64. ; ---------- routine to load a guide
  65. ;            $guide = full path of guide or '' for requester
  66.  
  67. xROUTINE LOADGUIDE 
  68. if $guide > ' '
  69.    ;
  70. else
  71.    ReqFile  -1 -1 300 200 'Choose a guide:' LOAD guide ''
  72.    if $guide <= ' '
  73.       stop
  74.    endif
  75. endif
  76. extract guide file list
  77. guidename = $list
  78. appvar list .idx
  79. joinfile guis:tools/FastRead/idx $list list
  80. ifexists file $list
  81.     ;nop
  82. else
  83.     cli 'getnodes $guide $list'
  84. endif
  85. mode = index
  86. copy $list ram:fr_list
  87. lvuse FRead.gc 1
  88. lvchange ram:fr_list
  89. guiopen FRead.gc
  90. setwintitle FRead.gc 'INDEX : $guidename                          '
  91.  
  92.  
  93. ; ---------------------------- the graphic buttons 
  94.  
  95.  
  96. ; display
  97. BOX 1 1 153 15  out button
  98. TEXT 15 1 60 15  '' 60 NOBOX
  99. gadid 2
  100.  
  101. ; Open
  102. XBUTTON 163 1 33 15   "f"
  103. gadfont gc.font 12 000
  104. guide = ''
  105. gosub fread.gc loadguide
  106. update fread.gc 2 INDEX
  107.  
  108. ; Quit
  109. XBUTTON 197 1 33 15   "b"
  110. gadfont gc.font 12 000
  111. guiquit fread.gc
  112.  
  113. ; save
  114. XBUTTON 231 1 33 15   "F"
  115. gadfont gc.font 12 000
  116.  
  117. ; 1st
  118. XBUTTON 273 1 33 15   "h"
  119. gadfont gc.font 12 000
  120.  
  121.  
  122. ; Previous
  123. XBUTTON 307 1 33 15   "G"
  124. gadfont gc.font 12 000
  125.  
  126. ; Next
  127. XBUTTON 341 1 33 15   "g"
  128. gadfont gc.font 12 000
  129.  
  130. ; last
  131. XBUTTON 375 1 33 15   "h"
  132. gadfont gc.font 12 000
  133.  
  134. ; find
  135. XBUTTON 417 1 33 15   "u"
  136. gadfont gc.font 12 000
  137.  
  138. ; replace
  139. XBUTTON 451 1 33 15   "U"
  140. gadfont gc.font 12 000
  141.  
  142. ; Cut
  143. XBUTTON 489 1 33 15   "m"
  144. gadfont gc.font 12 000
  145.  
  146. ; Copy
  147. XBUTTON 523 1 33 15   "M"
  148. gadfont gc.font 12 000
  149.  
  150. ; Paste
  151. XBUTTON 557 1 33 15   "4"
  152. gadfont gc.font 12 000
  153.  
  154. ; Edit
  155. XBUTTON 596 1 33 15   "N"
  156. gadfont gc.font 12 000
  157.  
  158.  
  159. ;#########################################################################
  160.  
  161. ;                      POP-UP ON RMB - while in index mode
  162.  
  163. ;#########################################################################
  164.  
  165. NEWFILE fread.pop    ; Pop-up on double-click "More.." gui.
  166.  
  167. WinBig 0 0 80 75 ""
  168. WinType 00001000
  169. winonmouse 30 7 
  170. varpath fread.gc
  171.  
  172. xOnRMB 
  173. guiclose FRead.pop
  174.  
  175. xOnInactive
  176. guiclose FRead.pop
  177.  
  178. xOnFail
  179. ezreq "Error during operation" OK ""
  180.  
  181. ;---------------> the Buttons
  182.  
  183. xbutton 0 0 0 15  Open..
  184. guiclose FRead.pop
  185. guide = ''
  186. gosub fread.gc loadguide
  187. setgad fread.pop 10 on
  188.  
  189. xbutton 0 15 0 15 Search
  190. guiclose FRead.pop
  191. guiopen fread.search
  192.  
  193. xbutton 0 30 0 15 ReIndex
  194. guiclose FRead.pop
  195. ifexists file $list 
  196.    delete $list
  197. endif
  198. cli 'getnodes $guide $list'
  199. mode = index
  200. copy $list ram:fr_list
  201. lvuse FRead.gc 1
  202. lvchange ram:fr_list
  203. setgad fread.pop 10 on
  204. setwintitle FRead.gc 'RE-INDEXED : $guidename                          '
  205.  
  206. xbutton 0 45 0 15 " Sort "
  207. gadid 5
  208. guiclose FRead.pop
  209. gadid 10
  210. if $mode = index
  211.    lvuse fread.gc 1
  212.    linetxt = $$lv.rec 
  213.    lvsort asc
  214.    lvfind $linetxt
  215.    lvsave ram:fr_list
  216.    xline = $$lv.line
  217.    setgad fread.pop 10 off 
  218. endif
  219.  
  220. xbutton 0 60 0 15 Quit
  221. guiclose FRead.pop
  222. guiquit  fread.gc
  223.  
  224.  
  225. ;#########################################################################
  226.  
  227. ;                          SEARCH GUI
  228.  
  229. ;#########################################################################
  230.  
  231. NEWFILE fread.search
  232.  
  233. winbig -1 -1 300 32 'Enter Search string :'
  234. wintype 11110001
  235. varpath 'fread.gc/fread.pop'
  236.  
  237. xonopen         ; reset variables on opening
  238. srchmode = CI
  239. flag = 0
  240.  
  241.  
  242. xTextIn  0 0 0 15 '' str '' 128
  243. gosub FRead.search search
  244.  
  245.  
  246. xCycler  0 17 150 14 '' srchmode        ; choose case sensitive/insen..
  247. cstr 'Ignore case' CI
  248. cstr 'Same case'   CS
  249.  
  250.  
  251. xButton 150 17 100 14 'Top'     ; go to top of lv
  252. flag = 0                        
  253. lvgo #0
  254. update FRead.gc 1 0
  255. setwintitle FRead.search 'Enter search string :'
  256.  
  257. xButton  250 17 50 14 >>
  258. gosub FRead.search search
  259.  
  260. xroutine search
  261. if $str = ''            ; no string entered 
  262.    stop
  263. endif
  264. lvuse FRead.gc 1                ; use the reader's listview
  265. if $flag = 0                    ; flag=0 means this is the first time
  266.    flag = 1
  267.    lvsearch $str $srchmode first        ; Keywords such as mode (CI or CS), do
  268.                                         ; not get translated, but in lvsearch
  269.                                         ; it's an exception, so we can say $mode
  270. else
  271.    lvsearch $str $srchmode next
  272. endif
  273. if $$lv.line > ''               ; update to line found
  274.    update FRead.gc 1 $$lv.line
  275.    setwintitle FRead.search 'Line $$lv.line'
  276. else
  277.    lvgo #0                      ; or else go top again
  278.    flag = 0
  279.    setwintitle FRead.search 'Search Finished'
  280. endif
  281.  
  282.  
  283.